import numpy as np

def uniform_samples(start, stop, num=50, endpoint=True):
    """
    生成在区间 [start, stop] 上 num 个均匀分布的样本点。

    参数：
    start : float
        节点计算的区间起始值。
    stop : float
        节点计算的区间终止值。
    num : int, optional
        生成的均匀采样点的数量，默认为 50。
    endpoint : bool, optional
        如果为 True，则返回的节点包括区间的终止值；默认为 True。

    返回：
    samples : ndarray
        在 [start, stop] 区间上的均匀采样节点。
    """
    # return np.linspace(a, b, num=n)
    if num < 2 or type(num) != int:
        raise ValueError("Invalid number to create a range of samples.")
    
    div = (num - 1) if endpoint else num # 缺省包含端点

    delta = stop - start

    step = delta / div

    samples = [start + i * step for i in range(num)]

    return samples